/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ssm.changeunit.command;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 *
 * @author 시리우스
 */
public class CommandWorkerOption {
    private String name;
    private List<String> values;
    
    /**
     * 생성자
     */
    public CommandWorkerOption(String name) {
        this.name = name;
        
        values = new ArrayList<String>();
    }
    
    /**
     * 생성자
     */
    public CommandWorkerOption(String name, String[] values) {
        this.name = name;
        
        this.values = new ArrayList<String>();
        
        for (String value : values) 
            this.values.add(value);
    }
    
    /**
     * 이름을 가져옵니다.
     * 
     * @return
     */
    public String getName() {
        return name;
    }
    
    /**
     * 이름을 설정합니다.
     * 
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }
    
    /**
     * 옵션의 값들을 가져옵니다.
     * 
     * @return
     */
    public String[] getValues() {
        return values.toArray(new String[values.size()]);
    }
    
    /**
     * 옵션의 값을 하나 추가합니다.
     * 
     * @param value
     */
    public void addValue(String value) {
        // 값이 존재하지 않을 때만 추가한다.
        if( values.indexOf(value) == -1 )
            values.add(value);
    }
    
    /**
     * 옵션의 값을 하나 제거합니다.
     * 
     * @param value
     */
    public void removeValue(String value) {
        // 값이 존재하지 않을 때만 추가한다.
        if( values.indexOf(value) != -1 )
            values.remove(value);
    }
}